// 检查是否为移动端
function updateIsMobile() {
    return window.innerWidth <= 768;
}

// 初次加载时设置布局
let isMobile = updateIsMobile();

// 检查屏幕尺寸并设置类名
function updateLayoutClass() {
    const html = document.documentElement;
    html.className = isMobile ? 'mobile' : 'pc';
}

// 活动上传作品的开始时间和结束时间
let startTime = new Date(upStartTime).getTime(); // 使用时间戳
let endTime = new Date(upEndTime).getTime();
let awardsTime = new Date(awardTime).getTime();

// 获取当前时间的时间戳
function getCurrentTimeTimestamp(timeStr) {
    return new Date(timeStr).getTime();
}

// 检查当前时间是否在开始和结束时间范围内
function isWithinTimeRange(startTime, endTime) {
    let currentTimeN = getCurrentTimeTimestamp(currentTime);
    return currentTimeN >= startTime && currentTimeN <= endTime;
}

// 隐藏/显示获奖公示菜单项
function toggleAwardMenuVisibility() {
    // 获取 PC 和移动端的菜单项元素
    let pcAwardMenuItem = document.querySelector('.navi-block-menu li:nth-child(8)'); // PC版的第8个li
    let mobileAwardMenuItem = document.querySelector('.mobile-menu-content-list-item:nth-child(8)'); // 移动版的第8个项
    // 判断当前时间是否在结束时间之后
    if (getCurrentTimeTimestamp(currentTime) > awardsTime) {
        // 11月11日 00:00:00之后，显示获奖公示
        pcAwardMenuItem.style.display = 'flex';
        mobileAwardMenuItem.style.display = 'block';
    } else {
        // 11月11日之前，隐藏获奖公示
        pcAwardMenuItem.style.display = 'none';
        mobileAwardMenuItem.style.display = 'none';
    }
}

// 检查活动时间范围并在页面加载时执行
function checkActivityTimeRange() {
    if (!isWithinTimeRange(startTime, endTime)) {
        // 如果不在时间范围内，返回上一页面
        window.history.back();
    }
}

// 检查是否登录动画宇宙
function checkIsLogin() {
    const accessToken = localStorage.getItem('ACCESS_TOKEN');
    console.log('checkIsLogin', accessToken)
    if (!accessToken) {
        window.location.href = 'http://172.18.202.146/cas/login?service=http://172.18.202.146/pcUploadWorks'
    }
}

// 检查滚动位置并控制fixed-card的显示和隐藏
function checkScrollPositionAndShowFixedCard() {
    const scrollPosition = window.scrollY;
    const videoPlayerHeight = document.querySelector('.pc-player-block').offsetHeight;
    const imgHeight = isMobile ? document.querySelector('.mobile-player-block').offsetHeight : document.querySelector('.pc-player-block').offsetHeight;
    const backTop = document.querySelector('.back-top');

    if (isMobile) {
        if (scrollPosition > imgHeight) {
            backTop.style.display = 'block';
        } else {
            backTop.style.display = 'none';
        }
    } else {
        if (scrollPosition > videoPlayerHeight) {
            backTop.style.display = 'block';
        } else {
            backTop.style.display = 'none';
        }
    }
}

// 平滑返回顶部
function backToTop() {
    document.querySelector('.back-top').addEventListener('click', () => {
        window.scrollTo({
            top: 0,
            behavior: 'smooth' // 实现平滑滚动
        });
    });
}

/**
 * 初始化菜单项的点击事件处理，包括高亮和滚动到相应部分的功能。
 */
function initializeMenuInteractions() {
    const menuList = isMobile ? document.querySelectorAll('.mobile-menu-content-list div') : document.querySelectorAll('.navi-block-menu li');
    const sectionIds = isMobile
        ? ['mb-activity-introduction-title', 'mb-event-progress-title', 'mb-event-description-title', 'mb-submission-principles-title', 'mb-evaluation-criteria-title', 'mb-organizer-title']
        : ['activity-introduction-title', 'event-progress-title', 'event-description-title', 'submission-principles-title', 'evaluation-criteria-title', 'organizer-title'];

    menuList.forEach((item, index) => {
        item.addEventListener('click', () => {
            // 移除所有菜单项的高亮
            menuList.forEach(li => li.classList.remove('active'));
            // 为当前点击的菜单项添加高亮
            item.classList.add('active');

            const sectionId = sectionIds[index];
            const currentURL = window.location.href;

            // 判断点击的菜单项是否为“全部作品”或“获奖公示”
            if (index === menuList.length - 2 || index === menuList.length - 1) {
                // 直接跳转到相应页面
                if (index === menuList.length - 2) {
                    window.location.href = 'all-works.ftl';
                } else {
                    window.location.href = 'award-announcement.ftl';
                }
            } else {
                // 其他菜单项的处理逻辑
                if (!currentURL.includes('index.ftl')) {
                    window.location.href = `index.ftl?section=${sectionId}`;
                    if (isMobile) closeMenu(); // 移动端关闭菜单
                } else {
                    toAnchorView(sectionId); // 在当前页面直接滚动
                    if (isMobile) closeMenu(); // 移动端关闭菜单
                }
            }
        });
    });
}

// 平滑过渡到对应区域 - 执行函数
function toAnchorView(data) {
    const $choose = document.querySelector(`.${data}`);
    if ($choose) {
        $choose.scrollIntoView({ behavior: 'smooth', block: 'start' });
        window.scrollTo({
            left: 0,
            top: $choose.offsetTop - 80,
            behavior: 'smooth'
        });
    }
}

// 控制导航菜单的sticky切换
function toggleStickyNavigation() {
    const playerBlockHeight = document.querySelector(".pc-player-block").offsetHeight;
    const menu = document.querySelector(".navi-block-menu");
    const currScrollTop = document.documentElement.scrollTop || document.body.scrollTop || window.scrollY;
    if (currScrollTop > playerBlockHeight) {
        menu.classList.remove("navi-default");
        menu.classList.add("navi-sticky");
    } else {
        menu.classList.remove("navi-sticky");
        menu.classList.add("navi-default");
    }
}

// 从其他页面点击-平滑滚动到目标部分
function scrollToSection() {
    isMobile ? toAnchorView('upload-works-title-mb') : toAnchorView('upload-works-title')
}

// 移动端-打开菜单
function openMenu() {
    const menuDom = document.querySelector('.mobile-menu-content');
    if (menuDom) {
        menuDom.style.display = 'flex';
        menuDom.className = `mobile-menu-content menu-content-show`;
    }
}

// 移动端-关闭菜单
function closeMenu() {
    const menuDom = document.querySelector('.mobile-menu-content');
    if (menuDom) {
        menuDom.className = `mobile-menu-content menu-content-close`;
    }
}

// 封装发送 activityId 到 iframe 的函数
function sendDeviceTypeToIframe(iframe, isMobile) {
    let deviceType = isMobile ? 'mb' : 'pc';
    if (iframe && iframe.contentWindow) {
        iframe.contentWindow.postMessage({ type: 'deviceType', data: deviceType }, '*');
    } else {
        console.error('Invalid iframe reference.');
    }
}

// 接收 iframe 传回的数据
function receiveIframeData(iframe) {
    window.addEventListener('message', (event) => {
        if (event.source === iframe.contentWindow) {
            // iframe.style.height = `${event.data.height}px`;
            if (event.data.type === 'height') {
                if (isMobile) {
                    // 确保文档已加载
                    const MbUploadWorks = iframe.contentWindow.document;
                    if (MbUploadWorks) {
                        const userPageDiv = MbUploadWorks.querySelector('#userPage');
                        iframe.height = userPageDiv.scrollHeight || 0;
                    } else {
                        console.error('MbUploadWorks html is undefined');
                    }
                } else  {
                    iframe.height = `${event.data.height}px`;
                }
            } else if (event.data.type === 'login') {
                window.location.href = `http://172.18.202.146/cas/login?service=http://172.18.202.146/cms/exhib/${id}/upload-work.ftl`;
            }
        }
    });
}

// 设置iframe的src
function setIframeSrc(iframe, activityId, uniqueId, isMobile) {
    /*const baseUrl = isMobile
        ? 'http://172.18.202.146/mbUploadWorks'
        : 'http://172.18.202.146/pcUploadWorks';*/
    let deviceType = isMobile ? 'mb' : 'pc'
    const baseUrl = 'http://172.18.202.146/pcUploadWorks'

    const src = `${baseUrl}?activityId=${activityId}&uniqueId=${uniqueId}&deviceType=${deviceType}`;

    if (iframe) {
        iframe.src = src;
    } else {
        console.error('Invalid iframe reference.');
    }
}


window.addEventListener('scroll', () => {
    checkScrollPositionAndShowFixedCard()
    toggleStickyNavigation()
});

window.addEventListener('DOMContentLoaded', () => {
    const iframe = document.querySelector('.upload-works-iframe');
    const activityId = id
    const uniqueId = 'animaverse2024'
    // 检查时间范围
    checkActivityTimeRange()
    // 检查屏幕尺寸并设置类名
    updateLayoutClass()
    // 从其他页面点击-平滑滚动到目标部分
    scrollToSection()
    // 平滑返回顶部
    backToTop()
    // 初始化菜单项的点击事件处理，包括高亮和滚动到相应部分的功能。
    initializeMenuInteractions()
    // 接收 iframe 传回的数据
    receiveIframeData(iframe)
    // 封装发送 activityId 到 iframe 的函数
    // sendActivityIdToIframe(iframe, activityId)
    // 设置iframe的src
    setIframeSrc(iframe, activityId, uniqueId, isMobile)
    // 隐藏/显示获奖公示菜单项
    toggleAwardMenuVisibility()
})

// 监听窗口大小变化
window.addEventListener('resize', () => {
    // 重新检查屏幕尺寸
    isMobile = updateIsMobile();
    const iframe = document.querySelector('.upload-works-iframe');
    const activityId = id
    const uniqueId = 'animaverse2024'
    checkActivityTimeRange(); // 检查时间范围
    updateLayoutClass()
    // scrollToSection()
    // backToTop()
    initializeMenuInteractions()
    receiveIframeData(iframe)
    // sendActivityIdToIframe(iframe, activityId)
    // setIframeSrc(iframe, activityId, uniqueId, isMobile)
    sendDeviceTypeToIframe(iframe, isMobile)
    toggleAwardMenuVisibility()
})
